Ensuring additive manufacturability of object model using meso-skeleton analysis

ABSTRACT

A three-dimensional object model is divided into a plurality of slices that are targeted for an additive manufacturing process having a minimum printable feature size. For each of the slices, a thinning algorithm is applied to one or more contours of the slice to form a meso-skeleton, where topological features of the thinned slice that are smaller than the minimum printable feature size are reduced to skeletal paths. A corrected slice is formed using the meso-skeleton by sweeping the meso-skeleton with the minimum printable feature size. The corrected slices are assembled into a corrected object model and the corrected object model is used in the additive manufacturing process.

RELATED PATENT DOCUMENTS

This application claims the benefit of Provisional U.S. Application No. 62/884,763 filed on Aug. 9, 2019, which is incorporated herein by reference in its entirety.

This invention was made with government support under contract number HR0011-17-2-0015 awarded by DARPA. The government has certain rights in the invention.

SUMMARY

The present disclosure is directed to ensuring additive manufacturing of object model using meso-skeleton analysis. In one embodiment a three-dimensional object model is divided into a plurality of slices. The slices are targeted for an additive manufacturing process having a minimum printable feature size. For each of the slices, a thinning algorithm is applied to one or more contours of the slice to form a meso-skeleton. In the thinning algorithm, topological features of the thinned slice that are smaller than the minimum printable feature size are reduced to skeletal paths. A corrected slice is formed using the meso-skeleton by sweeping the meso-skeleton with the minimum printable feature size. The thinning algorithm does not thin the slice beyond an erosion of the contours by the minimum printable feature size. The corrected slices are assembled into a corrected object model and the corrected object model is used in the additive manufacturing process.

In another embodiment, a computation is performed for each angle of a plurality of build-direction angles of an additive manufacturing process. The computation involves dividing a three-dimensional object model into a plurality of slices. The three-dimensional object model is targeted for an additive manufacturing process having a minimum printable feature size. The computation also involves, for each of the slices, forming a meso-skeleton via a thinning algorithm such that topological features of the thinned slice that are smaller than the minimum printable feature size are reduced to skeletal paths. The computation forms, for each slice, a corrected slice being by sweeping the meso-skeleton with the minimum printable feature size. The computation assembles the corrected slices into a corrected object model and determines a difference between the corrected object model to the three-dimensional object for the angle. For each angle, the next candidate orientation angle may be selected based on the previously evaluated orientations inside an optimization loop. After all angles are processed, a minimum difference is determined based on the differences obtained for each of the build-direction angles. A selected angle corresponding to the minimum difference is used to build the three-dimensional object model in the additive manufacturing process.

These and other features and aspects of various embodiments may be understood in view of the following detailed discussion and accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

The discussion below makes reference to the following figures, wherein the same reference number may be used to identify the similar/same component in multiple figures. The drawings are not necessarily to scale.

FIG. 1 is a set of images of additive manufacturing models and a resulting manufactured product according to an example embodiment;

FIG. 2 is a set of images illustrating toolpaths generated by different slicer software for the models including thin features;

FIGS. 3A-3E are set of diagrams that outline a model correction approach according to an example embodiment;

FIGS. 4 and 5 are pseudo-code listings of algorithms according to example embodiments;

FIGS. 6A-6D are images showing the application of a correction algorithm to a part geometry according to an example embodiment; and

FIG. 7A-7B are diagrams showing correction applied to a spur feature using an algorithm according to an example embodiment;

FIG. 8 is a set of images showing effects of build orientation on a model according to an example embodiment;

FIG. 9 is a set of images showing some results of meso-skeleton-based model correction according to example embodiments;

FIG. 10 is a set of images showing the toolpaths generated by different slicer software for the corrected models according to example embodiments;

FIG. 11 is a set of images showing distribution of structuring element sizes on an example model;

FIG. 12 is a set of images showing build direction optimization results according to example embodiments;

FIGS. 13 and 14 are flowcharts of methods according to example embodiments; and

FIG. 15 is a block diagram of an apparatus according to an example embodiment.

DETAILED DESCRIPTION

The present disclosure relates to additive manufacturing (AM). Recent advances in additive manufacturing technologies have triggered the development of powerful design methodologies allowing designers to create highly complex functional parts. Many such methods often operate under the assumption that any designed shape can be fabricated, e.g., using a 3D printer, and the resulting part matches the designed shape perfectly or with negligible errors. In reality, however, the selected AM process, mechanical characteristics of the printer or the material being used may introduce significant limitations to printability of a particular design in the form of a minimum printable feature size.

For instance, the minimum feature size might be relatively large for a consumer level fused deposition modeling (FDM) printer while an order of magnitude smaller features could be achieved with a high-end stereolithography (SLA) printer. Similarly, in electron beam melting (EBM) process, higher beam power leads to a larger melt pool, thereby resulting in a larger minimum printable feature size. Therefore, attempting to manufacture a complex shape with very small features using a consumer level FDM printer or an EBM machine with high beam power settings could lead to poor quality parts or even complete failure of the print.

In order to avoid such problems during the printing process, the manufacturing constraints should be taken into account during the design stage and the shape modified accordingly to ensure the product conforms as closely as possibly to the desired shape. This disclosure describes methods for analyzing and altering the designed geometry to make it manufacturable with the intended 3D printing approach and corresponding process parameters. The methods take as input a 3D shape represented by its boundary surface mesh and a minimum printable feature size dictated by the manufacturing process. The methods produce, based on this input, a corrected model that accurately approximates the as-manufactured part which can be 3D printed without any failures.

For example, in FIG. 1, a 3D input model 100 is shown as-designed, e.g., using a computer-aided design (CAD) program. Another view 102 of the model is shown with darker shaded areas indicating material that is added or removed to avoid fabrication errors due to minimum feature size. Image shows 104 the resulting manufactured item made using these modifications to the model. Image 106 shows the model in an orientation that can be shown to be an optimal build direction.

In analyzing and correcting a model for manufacturability, one challenge lies in identifying the important features and determining the modifications to the design that affects the shape minimally. An approach that overcomes this challenge involves constructing a meso-skeleton—the maximal area within each slice where a print head can be positioned during the printing process—that is topologically equivalent to the corresponding slice of the input shape. This approach allows thickening of topologically important parts that are smaller than the minimum printable size by creating a minimal path for the print head to deposit material. The modifications can be minimized by optimizing the build orientation of the part. This approach can operate on the slice level, simulating the layer-by-layer printing process. In this way, the resulting geometry accurately approximates the printed part revealing the downstream geometric changes in a design-to-manufacturing pipeline.

The disclosure generally describes a topology-aware model correction method for manufacturability. A meso-skeleton is constructed that serves as a proxy to the maximal area that the print head can traverse. A build orientation selection algorithm can be used minimize the amount of required shape modifications. Automatic techniques offering design aids in creating shapes that satisfy a variety of fabrication related constraints are known. Recent examples include partitioning and packing approaches to accommodate large prints, advanced slicing methods to improve the print quality and build time, automatic support structure design methods as well as shape modification approaches to minimize or avoid support structures. Other shape modification approaches have been explored to meet geometric requirements such as minimum feature size or wall thickness.

2.1 Design for Fabrication Constraints

Some existing approaches to create shapes that satisfy fabrication related constraints include partitioning and packing approaches to accommodate large prints, advanced slicing methods to improve the print quality and build time, automatic support structure design methods as well as shape modification approaches to minimize or avoid support structures. Other shape modification approaches have been explored to meet geometric requirements such as minimum feature size or wall thickness. The present approach falls under a general category in that the geometry is altered to make a part manufacturable under the given minimum printable feature size limitations. The aim is to provide an accurate approximation of the as-manufactured part by performing a slice-based analysis to construct an allowable space for the print head to traverse during the 3D printing process.

2.2 Manufacturability Analysis and Model Correction

In the context of additive manufacturing, conventional manufacturability analysis approaches are often intended for detecting artifacts in the input surface mesh such as self-intersections, non-manifoldness and non-watertightness. However, even models free of such artifacts may not be 3D printable as the size of certain regions of the object might drop below the printing resolution. Morphological operations and distance transforms, ray casting and feature-recognition-based approaches have been presented recently to identify such problematic regions. Although these approaches are demonstrated to provide valuable design feedback to user by determining compatibility of a 3D model with the printing hardware, very few solutions exist to automatically modify the shape to mitigate these manufacturability problems.

For example, problematic regions can be identified using 2D shape diameter function and then, a physics-based mesh deformation technique is followed by a post-processing step using morphological operations is used to make local corrections to improve printability of the design. In this approach, small holes and narrow intrusions are aimed to be eliminated as a part of the correction process. While the provided corrective actions improve the design significantly, it has been shown that the printability is not guaranteed. Other techniques use medial axis transformation together with techniques from mathematical morphology to construct a printability map and recommend design modifications. However, as the medial axis computation is very sensitive to noise, many unwanted branches may be created, especially on high curvature regions such as corners. Therefore, a special care has to be taken to remove them.

In the approaches described herein, a skeletal structure is used to preserve topologically and geometrically important features when correcting the shapes for manufacturability. In order to address the sensitivity problems, thinning methodologies used in binary image processing are adapted here to construct a meso-skeleton on which to base an altered model.

2.3 Build Direction Selection

Effects of build orientation on the build time and cost, the amount of support material, the mechanical properties and the surface quality have been studied extensively and automatic build direction selection algorithms are proposed to minimize such directional biases. Other works focus on geometrical inaccuracies caused by the staircase artifacts inherent to layered manufacturing processes. Although driven by similar motivations, in this work, the build direction is optimized in order to minimize the amount of modifications required to make the shape manufacturable with the given manufacturing process. This formulation is complementary to the aforementioned methods in that they may be used together to improve manufacturability of a design while also targeting other objectives.

3. Shape Modifications

In a traditional additive manufacturing pipeline, the 3D model is sliced into layers and then, each layer is individually processed to generate a set of machine instructions, usually in the form of a toolpath plan. The sequence of the movements in toolpath aims to track the outer boundary of the slice as well as to fill the inner regions and possible support structures. The conventional approach in toolpath planning is to generate machine instructions such that the deposited material is restricted to the interior of the slice. For a given slice S_(i) and a minimum printable feature F represented by a circle of diameter d, the maximal allowable region M that the print head can traverse can be calculated by the morphological erosion operation as shown in Equation (1). Therefore, the printed slice geometry P_(i) can be approximated by the morphological opening of S_(i) by F as shown in Equation (2) below, where {circle around (−)} and ⊕ denote morphological erosion and dilation operations, respectively.

$\begin{matrix} {M_{i} = {S_{i} \ominus F}} & (1) \\ \begin{matrix} {P_{i} = {\left( {S_{i} \ominus F} \right) \oplus F}} \\ {= {M_{i} \oplus F}} \end{matrix} & (2) \end{matrix}$

However, this approach causes features that are smaller than F to disappear in the created toolpath and thus, in the fabricated part. In FIG. 2, a diagram illustrates example cases and corresponding toolpaths generated by various slicer software commonly used for FDM process. The top row includes a test part with thin features and the bottom row includes a thin spherical shell. Left to right in FIG. 2, images represent the input model and toolpaths respectively generated by Simplify3D, Ultimaker Cura and Slic3r (Prusa edition). Note that in some cases, such as the thin spherical shell model, these problems manifest themselves as complete removal of layers and therefore, result in failure of the entire print process. Some slicers attempt to address this issue by performing corrective actions in toolpath level. For instance, Slic3r adjusts the filament feed rate to an amount below what is optimal to be able to print walls thinner than the nozzle diameter (FIG. 2, right column), or IceSL provides an option to thicken the critical regions by over-depositing material. However, modifications that are made in the toolpath level usually target a particular AM process (e.g., the above two examples target FDM process) and they may create ambiguities between what is designed and what is manufactured. Moreover, most commercial AM machines (such as Stratasys Objet or Dimension Elite) only support toolpath planning through their proprietary software that may not perform any corrective actions. Although the approaches described herein are similar to above mentioned tools in that they operate on slice level, the input model is corrected during the design stage, such that the design itself approximates the as-manufactured part as closely as possible and can be printed using the intended AM process.

In FIGS. 3A-3E, a diagram illustrates the overview of a model correction approach according to an example embodiment. The input 3D shape B is voxelized such that each slice of voxels in z-direction represents a layer in the 3D printing process as seen in s FIGS. 3A and 3B. Then, for each slice S_(i), a meso-skeleton {circumflex over (M)}_(i) is constructed, as shown in FIG. 3C. Similar to M in Equation (1), {circumflex over (M)}_(i) defines the allowable region that the print head can traverse while printing. However, {circumflex over (M)}_(i) contains additional skeletal paths for the features that are smaller than F in size. Therefore, sweeping the structuring element F over the meso-skeleton creates the corrected slice (see FIG. 3D) where the smallest feature is guaranteed to be equal or larger than F in size. Finally, stacking all the corrected slices together results in the corrected 3D model, as shown FIG. 3E. As seen in FIG. 4, Algorithm 1 summarizes the method. Here, V is the voxelized model, {circumflex over (V)} is the corrected voxelization that includes corrected slices Ŝ_(i) and {circumflex over (B)} represents the corrected surface mesh that is ready to be printed.

3.1 Meso-Skeleton Computation

The meso-skeleton of a slice is computed by performing a topology preserving thinning operation. Given an input slice S_(i) represented by a binary image where white pixels represent internal points and black pixels are background, contour pixels are removed that are not essential to its topology. Iterative removal of such pixels results in a thinned image that is used as the meso-skeleton. As seen in FIG. 5, Algorithm 2 summarizes an approach to compute the meso-skeleton in detail. Algorithm 2 starts by computing the conventional erosion E_(i) of the input slice. The erosion is used as an upper bound in the thinning process, such that the meso-skeleton cannot be shrunk beyond

This can be ensured by performing thinning operations on the input image only until the union of the thinned image {circumflex over (M)}_(i) with E_(i) does not change.

A two-subiteration thinning algorithm as described in “Parallel thinning with two-subiteration algorithms” (Communications of the ACM, March 1989, vol. 32, issue 3, pp. 359-373, by Guo and Hall) may be employed here. In such an algorithm, the deletion or retention of a pixel p is determined by the configuration of the pixels in its local 8-connected neighborhood, N(p). Under this scheme, a contour pixel p is deleted if the relationships in Equation (3) below hold, where X_(H)(p) is the crossing number and x_(k) are the values of pixels in N(p) with k=1; . . . ; 8, starting with the east neighbor and numbered in counter-clockwise order. (see, e.g., “Thinning methodologies-a comprehensive survey,” (IEEE Trans. Pattern Anal. Mach. Intell., September 1992, vol. 14, issue 9, by Lam, Lee, and Suen; and “Linear skeletons from square cupboards,” Machine Intelligence 4, 1969, p. 403, by Hilitch). In the first subiteration, pixels satisfying (a), (b), (c.1) and in the second subiteration, pixels satisfying (a), (b), (c.2) are removed.

$\begin{matrix} (a) & \; \\ {{X_{H}(p)} = 1} & (3) \\ (b) & \; \\ {2 \leq {\min \left( {{n_{1}(p)},{n_{2}(p)}} \right)} \leq 3} & \; \\ {{{n_{1}(p)} = {\sum\limits_{k - 1}^{4}{x_{{2\; k} - 1}\bigvee x_{2\; k}}}},} & \; \\ {{{n_{2}(p)} = {\sum\limits_{k - 1}^{4}{x_{2\; k}\bigvee x_{{2\; k} + 1}}}},} & \; \\ \left( {c{.1}} \right) & \; \\ {{{\left( {x_{2}\bigvee x_{3}\bigvee{x_{8}}} \right)\bigvee x_{1}} = 0},} & \; \\ \left( {c{.2}} \right) & \; \\ {{\left( {x_{6}\bigvee x_{7}\bigvee{x_{4}}} \right)\bigvee x_{5}} = 0} & \; \end{matrix}$

With this approach, the object shrinks to an 8-connected skeleton when applied repeatedly, such that an object without holes reduces to a minimally connected stroke, whereas an object with holes shrinks to a connected ring halfway between each hole and the outer contour. Here, the connectedness is ensured through the constraint on the crossing number. As the Euler number is preserved, a meso-skeleton {circumflex over (M)}_(i) that is homotopic to S_(i) is generated. Moreover, this approach preserves a skeletal structure for geometrically distinct features such as protrusions, in addition to the topologically essential parts.

In FIGS. 6A-6D, images show the application of the algorithms described above to a test part according to an example embodiment. An example slice 600 of the test part is shown together with the corresponding meso-skeleton 602 created by the algorithm. Notice that skeletal paths are created for topologically important features such as 604 and 606 as well as geometrically distinct regions such as the protrusion in region 608. In the resulting corrected model 610, all of these problematic thin features are automatically thickened. The minimum printable feature 612 (or the structuring element) is shown in upper right corner in FIG. 6A.

For long and thin protrusions, the thinning operation in Equation (3) may converge to the skeletal structure quickly and terminate further removal of pixels. This tends to create undesirable overdepositions later in constructing the corrected model. An example problematic case is shown in FIG. 7. As the pixels 700 are assigned to be skeleton pixels in the thinning process, they do not get removed in later iterations resulting in protrusion 702 (grey region). However, following dilation operation of this meso-skeleton with F, the protrusion 702 extends farther to the right than what was originally designed (white region 704). This problem is addressed by detecting the spur pixels 708 that are not removed during the thinning process and removing them. To ensure that the protrusion has the intended length in the corrected model, this operation is performed only for the first d/2 iterations. The corrected protrusion 706 (grey region) has the same length as the originally designed spur 704.

4. Build Direction Optimization

As these shape modification methods mimic the additive manufacturing process and operates on the slice level, the quality of a printed part and thus, the correction result depends on the selected build direction. The amount of change in the shape (e.g., amount of added or removed material with the correction process) may be significantly different for different build directions. For instance, as shown in FIG. 8, a threaded cylinder 800 can be optimally 3D printed in a vertical orientation 802, while certain modifications (e.g., thickening and rounding sharp thread and cylinder edges) are required for the horizontal orientation 804 to be printable. Therefore, selecting the right build direction can minimize the difference between the designed shape and the manufactured object.

Formal definition of the build direction optimization problem is shown below in Equation (4), where θ is the vector of design variables and θ₁ and θ₂ denote the extrinsic Euler angles representing a sequential rotation of the build direction vector about the x and z axes, respectively. Note that the build direction is initialized at +z direction for θ=[0,0]^(T). As the slices are identical for any two opposite build directions, only the half-space is explored by setting the bounds for θ₁ and θ₂ as given in Equation (4).

$\begin{matrix} {{{\begin{matrix} {minimize} \\ \theta \end{matrix}{C(\theta)}} = {\sum_{i}{{{{\hat{S}}_{i}(\theta)} - {S_{i}(\theta)}}}}}{{{{subject}\mspace{14mu} {to}\mspace{14mu} \theta_{1}} \in {\left\lbrack {{- \frac{\pi}{2}},\frac{\pi}{2}} \right\rbrack \mspace{14mu} {and}\mspace{14mu} \theta_{2}} \in \left\lbrack {0,\pi} \right\rbrack},{\theta = \left\lbrack {\theta_{1},\theta_{2}} \right\rbrack^{T}}}} & (4) \end{matrix}$

The objective function in Equation (4) measures the absolute difference between the input shape and the corrected shape. Therefore, both the amount of added material through the thickening operations and the amount removed material due to the rounded corners/edges are taken into account in determining the optimum build direction. Note that it is also possible to enforce the optimizer to favor one over the other (e.g., material addition might be tolerated in some applications while removal is not) by constructing the objective function as a weighted sum of these two components. The objective function in Equation (4) corresponds to equally weighted sums in such formulation.

As the algebraic definition of the gradients are not available, a derivative-free simulated annealing approach can be used to solve the optimization problem. The simulated annealing algorithm is implemented as described in “Optimization by simulated annealing” (Science, 1983, vol. 220, issue 4598, pp. 671-680, by Kirkpatrick, Gelatt, and Vecchi). The algorithm mimics the thermal annealing process of heating and slowly lowering the temperature of a part to minimize system energy. At each optimization step, new candidate states are generated by sampling a new design vector around the current state. The new states are drawn from a Gaussian distribution. Variance of the distribution is proportional to the temperature of the system. Since the optimization starts with a high temperature value that decreases through the iterations, the extent of the search (e.g., the distance of the new point from the current point) is higher at the beginning of the optimization allowing a broad search and gets smaller as the optimization converges. Any new state with a lower objective value is accepted. However, the algorithm allows accepting a solution with a higher objective value through a certain probability and alleviates the issue of getting stuck at a local minima. For cooling schedules, exponential cooling is used in all of the examples. Linear and logarithmic cooling schedules have also be explored and resulted in similar convergence properties.

5. Results

The images in FIG. 9 illustrate the results of meso-skeleton-based model correction on various models. Images 900 show the input uncorrected models and images 902 are photos of the corresponding failed prints based on the uncorrected models. Images 904 are the corrected models and photos 906 are of the successful prints. Added and removed material are highlighted in darker regions of images 904. Here, the build direction is assumed to be θ=[0,0]. The meso-skeleton approach detects the problematic regions and modifies each layer automatically to make them manufacturable. Printed results verify the method that manufacturing failures are resolved in the corrected models. Note that in some extreme cases such as the uniform thickness spherical shell model (middle row), the correction makes the completely unprintable model printable using the same manufacturing process and same set of process parameters. Similarly, disappearing regions that are geometrically or topologically important in the design are recovered for the test part (top row) and the playground (bottom row). Table 1 summarizes the model correction results with various metrics relevant to these models.

TABLE 1 Performance of model correction algorithm on different models Model Slices Image Size Time (s) Test Part 65 [583 × 597] 3.44 Molecule 383 [513 × 462] 11.22 Threaded cylinder 421 [623 × 632] 44.78 Spherical shell 712 [795 × 795] 67.96 Playground 555 [1417 × 1479] 187.57 Dragon 687 [284 × 253] 4.86 Helical tower 1472 [376 × 382] 27.75

In FIG. 10, images show the toolpaths generated by different slicer software for the corrected test part and spherical shell models. Unlike the toolpaths generated for the original models (see FIG. 2), there are no ambiguities in the resulting shape, such that all the slicers were able to generate similar results with no indication of any fabrication failure.

As the meso-skeleton is generated through iterative removal of contour pixels, the exact state where the skeleton is reduced to a single pixel wide line for the first time can be computed. At this state, the number of removed contour layers corresponds to the maximum allowable structuring element size to print the current slice without making any topologically or geometrically important changes. This allows specifying a per-layer structuring element size that can be used to fabricate the input geometry without requiring any correction. FIG. 11 illustrates the distribution of the required structuring element size on an example model. It can be observed that for layers involving thin features (such as the tip of the wings, the claws and the wing membranes), the algorithm suggests smaller structuring elements as expected.

In order to validate this result, an open-source slicer (gsSlicer) was modified to adjust the extrusion width for each layer individually in the FDM toolpath generation. Due to the physical constraints of the printer, the change in the extrusion width was limited to 2× only by setting the allowable range to 0:6-1:2 mm. In that case, it can be observed in FIG. 11 (middle) that layers containing critical features are assigned the lower bound value. Such an adjustment in the extrusion width results in ˜8% decrease in the build time as the layers without any critical features can be printed faster using a larger extrusion width. The improvement in build time can be more significant for complex models containing large bulky regions with more localized small and thin features.

The images in FIG. 12 and FIG. 1 illustrate build direction optimization results. This optimization results in ˜15% to ˜50% reduction in the objective value for the molecule, the dragon and helical tower models. In order to validate the optimization approach, the threaded cylinder model was also analyzed. The optimizer was able to converge to the solution of the vertical print configuration at which the model can be printed almost perfectly. It can be observed that major problems in the horizontal orientation including the rounding of the cylinder edges and the thickening of the sharp threads are avoided in the vertical orientation, resulting in ˜98% reduction in the objective value. Table 2 summarizes the build direction optimization results together with other performance metrics.

TABLE 2 Performance of build direction optimization on different models Objective Value Model Initial Optimized θ Time Molecule 180661 118927  [−.75, 0.03] 62 m Threaded cylinder 2040590 26687  [1.52, 0.00] 3 h 56 m Dragon 131748 63694 [−1.98, 1.57] 35 m Helical tower 134276 112601 [−1.51, 1.09] 2 h 31 m

In FIG. 13, a flowchart shows a method according to an example embodiment. The method involves dividing 1300 a three-dimensional object model into a plurality of slices. The object model is targeted for an additive manufacturing process having a minimum printable feature size. Loop limit 1301 indicates processing operations performed for each of the slices. These operations include applying 1302 a thinning algorithm to one or more contours of the slice to form a meso-skeleton. For this thinning algorithm, topological features of the meso-skeleton that are smaller than the minimum printable feature size are reduced 1303 to skeletal paths. The thinning algorithm is configured 1304 such that the slice is not thinned beyond an erosion of the contours by the minimum printable feature size. The meso-skeleton is used to form 1305 a corrected slice using the by sweeping the meso-skeleton with the minimum printable feature size. After completion of the loop 1301 (e.g., after all slices have been processed), the corrected slices are assembled 1306 into a corrected object model. The corrected object model is used in the additive manufacturing process, e.g., to ensure the object model is manufacturable while maintaining topologically important features. This method can be performed in a design stage, such that the corrected model is processed by a slicer and toolpath generator specific to the additive manufacturing machines.

In FIG. 14, a flowchart shows a method according to another example embodiment. The method involves defining 1400 a plurality of build-direction angles of an additive manufacturing process. Note that all of angles need not be predefined. For example, a next angle may be selected based on previously evaluated angles inside an optimization loop, such that the angle is selected to reduce an error between a corrected model at each angle and the original model. Outer loop 1401 iterates through each of the angles where a computation is performed. The computation involves dividing 1402 a three-dimensional object model into a plurality of slices. The slices are targeted for an additive manufacturing process having a minimum printable feature size.

Inner loop 1403 involves, for each of the slices, forming 1404 a meso-skeleton via a thinning algorithm such that topological features of the slice that are smaller than the minimum printable feature size are reduced to skeletal paths. A corrected slice is formed 1405 by sweeping the meso-skeleton with the minimum printable feature size. After all the slices have been processed, the corrected slices are assembled 1406 into a corrected object model. A difference between the corrected object model and the three-dimensional object for the angle is determined 1407. For each angle, the next orientation angle is selected 1410 based on the previously evaluated orientation angles inside an optimization loop. After all angles are processed, a minimum difference of the differences obtained for each of the build-direction angles is determined 1408. A selected angle corresponding to the minimum difference is used 1409 to build the three-dimensional object model in the additive manufacturing process.

The methods and processes described above can be implemented on computer hardware, e.g., workstations, servers, as known in the art. In FIG. 15, a block diagram shows an apparatus 1500 that may be used to implement methods according to an example embodiment. The apparatus 1500 includes one or more processors 1502 such as a central processing unit, co-processor, digital signal processor, etc. The processor 1502 is coupled to memory, which may include both random access memory 1504 and persistent storage 1506, via one or more input/output busses 1508. Other general-purpose or special-purpose hardware may be coupled to the bus 1508, such as graphics processing unit (GPU) 1515 and network interface 1512. Note that the functions of the apparatus 1500 described below may be implemented via multiple devices, e.g., via client-server arrangement, clustered computing, cloud computing, etc.

The network interface 1512 facilitates communications via a network 1514 with a manufacturing system 1516, using wired or wireless media. The manufacturing system may include at least one additive manufacturing machine as well as pre-processors, formatters, etc., that prepare data models for use by the manufacturing machines. Data may also be transferred to the manufacturing system 1516 using non-network transport, e.g., via portable data storage drives, point-to-point communication, etc.

The apparatus 1500 includes software 1520 that facilitates optimizing geometry models for manufacture on additive manufacturing machines. The software 1520 includes an operating system 1522 and drivers 1524 that facilitate communications between user-level programs and the hardware. The software 1520 may also include a slicer 1526 that decomposes a three-dimensional model into two-dimensional slices. The slicer 1526 may have knowledge of particular slicer processes used to form toolpaths for the manufacturing system 1516, however this is not required. Advantageously, the slicer 1526 and other processing modules 1528, 1530 can prepare manufacturable models with only minimal information of the target manufacturing machine, e.g., minimum printable feature size, layer thickness, etc.

A topology analysis module 1528 analyses the slices and determines a meso-skeleton for each slice. The module 1528 may use any thinning algorithm, although specific examples are described above. The meso-skeleton ensures that topological features of the slice that are smaller than the minimum printable feature size are reduced to skeletal paths, such that a corrected slice can be formed by sweeping the meso-skeleton with the minimum printable feature size.

An additional modification module 1530 may further process the slices to optionally correct certain side effects of the skeletonization of the slices. For example, spurs and other protrusions that are smaller than the minimum printed feature size may extend out further than what is in the model due to the thickening of the spur or other protrusion. The module 1530 may be configured to correct these side effects, e.g., removing end pixels from the spurs. The module 1530 is also configured to assemble the corrected slices into a corrected 3-D model that can then be sent to the manufacturing system 1516.

An orientation optimization module 1532 may utilize the processing modules 1526, 1528, 1530 to further optimize the model for manufacturing. The orientation optimization module 1532 simulates a plurality of build orientations of the model, and based on the topology analysis, can determine differences between the corrected model and original model for each build orientation. The orientation that has a minimum difference is the one that will be most topologically faithful to the original model yet can still be manufacturable by the system 1516 to a high level of confidence.

The various embodiments described above may be implemented using circuitry, firmware, and/or software modules that interact to provide particular results. One of skill in the arts can readily implement such described functionality, either at a modular level or as a whole, using knowledge generally known in the art. For example, the flowcharts and control diagrams illustrated herein may be used to create computer-readable instructions/code for execution by a processor. Such instructions may be stored on a non-transitory computer-readable medium and transferred to the processor for execution as is known in the art. The structures and procedures shown above are only a representative example of embodiments that can be used to provide the functions described hereinabove.

Unless otherwise indicated, all numbers expressing feature sizes, amounts, and physical properties used in the specification and claims are to be understood as being modified in all instances by the term “about.” Accordingly, unless indicated to the contrary, the numerical parameters set forth in the foregoing specification and attached claims are approximations that can vary depending upon the desired properties sought to be obtained by those skilled in the art utilizing the teachings disclosed herein. The use of numerical ranges by endpoints includes all numbers within that range (e.g. 1 to 5 includes 1, 1.5, 2, 2.75, 3, 3.80, 4, and 5) and any range within that range.

The foregoing description of the example embodiments has been presented for the purposes of illustration and description. It is not intended to be exhaustive or to limit the embodiments to the precise form disclosed. Many modifications and variations are possible in light of the above teaching. Any or all features of the disclosed embodiments can be applied individually or in any combination and are not meant to be limiting, but purely illustrative. It is intended that the scope of the invention be limited not with this detailed description, but rather determined by the claims appended hereto. 

1. A method comprising: dividing a three-dimensional object model into a plurality of slices, the slices being targeted for an additive manufacturing process having a minimum printable feature size; for each of the slices: applying a thinning algorithm to one or more contours of the slice to form a meso-skeleton, wherein topological features of the thinned slice that are smaller than the minimum printable feature size are reduced to skeletal paths; and forming a corrected slice using the meso-skeleton by sweeping the meso-skeleton with the minimum printable feature size, the thinning algorithm configured such that the slice is not thinned beyond an erosion of the contours by the minimum printable feature size; and assembling the corrected slices into a corrected object model and using the corrected object model in the additive manufacturing process.
 2. The method of claim 1, wherein the thinning algorithm comprises a two sub-iteration thinning algorithm.
 3. The method of claim 1, further comprising, for each slice: determining that at least one of the skeletal path comprises a spur; and remove one or more pixels from an end of the spur such that a manufactured representation of the spur has a length corresponding to that of the three-dimensional object model.
 4. The method of claim 1, wherein, for each slice, forming the corrected slice comprises dilating the meso-skeleton with the minimum printable feature size.
 5. The method of claim 1, wherein, for each slice, the thinning algorithm is repeated until a union of the meso-skeleton with the erosion of the contours does not change between subsequent repetitions.
 6. The method of claim 1, wherein the corrected model is created at a design stage, the corrected model being further processed via a slicer and toolpath generator of the additive manufacturing process.
 7. A method comprising: for each angle of a plurality of build-direction angles of an additive manufacturing process, performing a computation comprising: dividing a three-dimensional object model into a plurality of slices, the three-dimensional object model being targeted for an additive manufacturing process having a minimum printable feature size; for each of the slices, forming a meso-skeleton via a thinning algorithm such that topological features of the thinned slice that are smaller than the minimum printable feature size are reduced to skeletal paths, a corrected slice being formed by sweeping the meso-skeleton with the minimum printable feature size; assembling the corrected slices into a corrected object model; and determining a difference between the corrected object model to the three-dimensional object for the angle; determining a minimum difference of the differences obtained for each of the build-direction angles; and using a selected angle corresponding to the minimum difference to build the three-dimensional object model in the additive manufacturing process.
 8. The method of claim 7, wherein, for each angle, a next angle is selected based on previously evaluated angles inside an optimization loop.
 9. The method of claim 7, wherein the computation is performed over a plurality of angle pairs measured relative to first and second orthogonal build axes, a selected angle pair corresponding to the minimum difference being used to build the three-dimensional object model in the additive manufacturing process.
 10. The method of claim 7, wherein the difference between the corrected object model to the three-dimensional object for the angle is weighted to favor one of material addition or material deletion in the corrected object model.
 11. The method of claim 7, wherein the thinning algorithm comprises a two sub-iteration thinning algorithm.
 12. The method of claim 7, wherein, for each slice, forming the corrected slice comprises dilating the meso-skeleton with the minimum printable feature size.
 13. The method of claim 7, wherein, for each slice, the thinning algorithm is repeated until a union of the meso-skeleton with the erosion of the contours does not change between subsequent repetitions.
 14. The method of claim 7, wherein the corrected model is created at a design stage, the corrected model being further processed via a slicer and toolpath generator of the additive manufacturing process.
 15. The method of claim 7, wherein determining the orientation corresponding to the minimum difference comprises using a simulated annealing algorithm.
 16. A system comprising an additive manufacturing machine having a minimum printable feature size; an apparatus comprising a processor coupled to memory, the processor configured to: divide a three-dimensional object model into a plurality of slices, the slices being targeted for the additive manufacturing machine; for each of the slices: apply a thinning algorithm to one or more contours of the slice to form a meso-skeleton, wherein topological features of the thinned slice that are smaller than the minimum printable feature size are reduced to skeletal paths; and form a corrected slice using the meso-skeleton by sweeping the meso-skeleton with the minimum printable feature size, the thinning algorithm configured such that the corrected slice is not thinned beyond an erosion of the contours by the minimum printable feature size; and assemble the corrected slices into a corrected object model and send the corrected object model to the additive manufacturing machine.
 17. The system of claim 16, wherein the thinning algorithm comprises a two sub-iteration thinning algorithm.
 18. The system of claim 16, further comprising, for each slice: determining that at least one of the skeletal path comprises a spur; and remove one or more pixels from an end of the spur such that a manufactured representation of the spur has a length corresponding to that in the three-dimensional object model.
 19. The system of claim 16, wherein, for each slice, forming the corrected slice comprises dilating the meso-skeleton with the minimum printable feature size.
 20. The system of claim 16, wherein, for each slice, the thinning algorithm is repeated until a union of the meso-skeleton with the erosion of the contours does not change between subsequent repetitions.
 21. The system of claim 16, wherein the corrected model is created at a design stage, the corrected model being further processed via a slicer and toolpath generator associated with the additive manufacturing machine. 